﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sinacor.Infra.Common.Security.Authentication.Credentials
{
    [Serializable]
    public class SinacorUserInfo
    {
        private int _companyId;
        private Int32? _sessionId;
        private bool _sessionExpires = false;
        private string _userName;
        private string _password;
        private string _tokenId;
        private int _userId;
        private DateTime _expirationDate;

        public SinacorUserInfo()
        {

        }

        public SinacorUserInfo(string userName, string password, int companyId, int? sessionId, string tokenId, bool? sessionExpires)
        {
            _companyId = companyId;
            _userName = userName;
            _password = password;
            _sessionId = sessionId;
            _tokenId = tokenId;
            if (sessionExpires !=null)
            _sessionExpires = sessionExpires.Value;
        }

        public DateTime ExpirationDate
        {
            get { return _expirationDate; }
            set { _expirationDate = value; }
        }

        public int CompanyId
        {
            get { return _companyId; }
            set { _companyId = value; }
        }

        public string UserName
        {
            get { return _userName; }
            set { _userName = value; }
        }

        public string Password
        {
            get { return _password; }
            set { _password = value; }
        }

        public string TokenId
        {
            get { return _tokenId; }
            set { _tokenId = value; }
        }

        public Int32? SessionId
        {
            get { return _sessionId; }
            set { _sessionId = value; }
        }
        /// <summary>
        /// Indica se a sessão expira ou se é permanente.
        /// </summary>
        public bool SessionExpires
        {
            get { return _sessionExpires; }
            set { _sessionExpires = value; }
        }

        /// <summary>
        /// Id do Usuário
        /// </summary>
        public int UserId
        {
            get { return _userId; }
            set { _userId = value; }
        }
    }
}
